//
//  Function.m
//  Day11
//
//  Created by dllo on 16/5/18.
//  Copyright © 2016年 lanou. All rights reserved.
//

#import "Function.h"

void sayHello () {
    printf("你好世界");
}


int getMax (int a, int b) {
    int max = a > b ? a : b;
    return max;
}

int getSum (int a ,int b) {
    return a + b;
}
//专门负责拼接"高富帅"三个字的函数
void addStr(char *name) {
    strcat(name, "高富帅");
}

//查找分数在90分以上的学生,在名字后面拼接高富帅
void findStudentByScore(Student *stus, int count, FUNC p) {
    for (int i = 0; i < count ; i++){
        if (stus[i].score > 90) {
            p(stus[i].name);
        }
    }
}
//输出学生信息
void printStudents(Student stuArray[], int count) {
    for (int i = 0; i < count ; i++) {
        printf("%s--%d--%.2lf\n",stuArray[i].name,stuArray[i].age,stuArray[i].score);
    }
}
//比较两个学生的年龄
BOOL compareStudentByAge (Student stu1 ,Student stu2) {
    return stu1.age > stu2.age ? YES : NO;
}
//比较两个学生的分数
BOOL compareStudentByScore (Student stu1 ,Student stu2){
    return stu1.score > stu2.score ? YES : NO;
}

void bubbleSort (Student stuArray[], int count, Condition p) {
    Student temp;
    int flag;//监听排序状态
    for(int i = 0; i < count - 1; i++) {
        flag = 0;//每趟开始将flag设置为0;
        for (int j = 0; j < count - 1 - i; j++) {
            if (p(stuArray[j],stuArray[j + 1])) {
                temp = stuArray[j];
                stuArray[j] = stuArray[j + 1];
                stuArray[j + 1] = temp;
                flag = 1;
            }
        }
        //判断flag此时的状态;
        if (flag == 0) {
            //顺序已经正序,跳出循环
            break;
        }
    }
}



